package oop.controller.action.test;

import java.util.List;

import oop.controller.action.DefaultAction;
import oop.data.Category;
import oop.data.SimpleUser;
import oop.data.Test;
import oop.db.dao.CategoryDAO;

import org.apache.commons.lang.StringUtils;

public class CreateAction extends DefaultAction {

	@Override
	public void perform() throws Exception {
		String submit = request.getParameter("tc_submit");
		if ("create".equals(submit)) {
			boolean error = false;
			String name = request.getParameter("tc_name");
			if (StringUtils.isEmpty(name)) {
				request.setAttribute("nameErr", "Bạn cần nhập tên đề thi.");
				error = true;
			}

			String description = request.getParameter("tc_description");
			if (StringUtils.isEmpty(description)) {
				request.setAttribute("desciptionErr",
						"Bạn cần nhập mô tả đề thi.");
				error = true;
			}

			Category category = null;
			if (StringUtils.isEmpty(request.getParameter("tc_category"))) {
				request.setAttribute("categoryErr", "Bạn cần chọn thể loại.");
				error = true;
			} else {
				int categoryId = Integer.parseInt(request
						.getParameter("tc_category"));
				List<Category> categories = CategoryDAO.fetchById(categoryId);
				if (categories.isEmpty()) {
					request.setAttribute("categoryErr",
							"Thể loại không tồn tại.");
					error = true;
				} else {
					category = categories.get(0);
				}
			}

			if (!error) {
				Test test = new Test(name, description, category,
						(SimpleUser) request.getSession().getAttribute("user"),
						"radio", 90); //XXX
				test.persist();
				setNextAction("test.view");
			}
		} else if ("cancel".equals(submit)) {
			setNextAction("test.list");
		}
	}

}
